//     "罗经",
//     "潮位",
//     "船体吃水",
//     "横倾",
//     "纵倾",
//     "GPS数组",
//     "GPS1X坐标",
//     "GPS1Y坐标",
//     "GPS2X坐标",
//     "GPS2Y坐标",
//     "GPS3X坐标",
//     "GPS3Y坐标",
//     "GPS4X坐标",
//     "GPS4Y坐标",
//     "左耙坐标X",
//     "左耙坐标Y",
//     "左耙坐标Z",
//     "右耙坐标X",
//     "右耙坐标Y",
//     "右耙坐标Z",
//     "艏喷",
//     "装舱",
//     "舱内液高",
//     "抛泥",
//     "泥门高度",
//     "左耙头吊架内限位",
//     "左耙中吊架内限位",
//     "左管弯吊架内限位",
//     "左耙头吊架外限位",
//     "左耙中吊架外限位",
//     "左管弯吊架外限位",
//     "左耙头绞车上限位",
//     "左耙中绞车上限位",
//     "左管弯绞车上限位",
//     "左耙头搁墩限位",
//     "左耙中搁墩限位",
//     "左弯管搁墩限位",
//     "右耙头吊架内限位",
//     "右耙中吊架内限位",
//     "右管弯吊架内限位",
//     "右耙头吊架外限位",
//     "右耙中吊架外限位",
//     "右管弯吊架外限位",
//     "右耙头绞车上限位",
//     "右耙中绞车上限位",
//     "右管弯绞车上限位",
//     "右耙头搁墩限位",
//     "右耙中搁墩限位",
//     "右弯管搁墩限位",
//     "左吸口到位",
//     "右吸口到位",
//     "左耙上耙管水平角度",
//     "左耙上耙管垂直角度",
//     "左耙下耙管水平角度",
//     "左耙下耙管垂直角度",
//     "右耙上耙管水平角度",
//     "右耙上耙管垂直角度",
//     "右耙下耙管水平角度",
//     "右耙下耙管垂直角度",
//     "左耙浓度",
//     "右耙浓度",
//     "左耙流速",
//     "右耙流速",
//     "左溢流桶行程",
//     "右溢流桶行程",

import store from '../../redux/store';
import { updateSeaLevel } from './3d/scene/water';
import { setGPS as setGPSByLand, dredgingByLand } from './3d/land';
import {
    updateDraught, // 更新吃水
    setShipPosition, // 更新船位置
    setShipRotation, // 更新船旋转

    shipEffect, // 船特效
    updateLiquidHigh, // 更新仓液高度
    updateMudGatesHigh, // 更新泥门高度

} from './3d/ship';

import {
    rakeAction1, // 耙动作1
    rakeAction2, // 耙动作2
    riseState, // 上升状态
    releaseState, // 外放状态
    actionArm,  // 耙臂旋转 
} from './3d/ship/robotic-arm';

import { updatelookAtObject } from './3d/scene/setWindow';

let mockData = [
    0.01278071, 0.300127536058426, 1.746225, 2.5, null, null,
    1234,
    7.92973490006989, 49.077061273448, 0, 0, undefined, undefined, undefined, undefined,
    -5.2973490006989, 55.077061273448, 15,
    28.92973490006989, 55.077061273448, 15,
    0,
    0,
    3,
    0,
    1.5,

    // 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, //  上升
    // 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 内放
    0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 外放
    0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 外放
    // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, // 外放
    // 0, 0,

    15, 0, 15, -5,
    15, 0, 15, 5,
    null, null, null, null, null, null
];

let System; // 系统标识。用于定义甲方父页面的数据。

// 节点表
let nodeList = [
    "航速",
    "罗经",
    "潮位",
    "船体吃水",
    "横倾",
    "纵倾",

    // 船移动参数
    "GPS数组",
    "GPS1X坐标",
    "GPS1Y坐标",
    "GPS2X坐标",
    "GPS2Y坐标",
    "GPS3X坐标",
    "GPS3Y坐标",
    "GPS4X坐标",
    "GPS4Y坐标",

    // 挖泥动画参数
    "左耙坐标X",
    "左耙坐标Y",
    "左耙坐标Z",
    "右耙坐标X",
    "右耙坐标Y",
    "右耙坐标Z",

    // 艏喷动画
    "艏喷",

    // 装舱动画
    "装舱",
    "舱内液高",

    // 抛泥动画
    "抛泥",
    "泥门高度",

    // 耙升降动画
    "左耙头吊架内限位",
    "左耙中吊架内限位",
    "左管弯吊架内限位",
    "左耙头吊架外限位",
    "左耙中吊架外限位",
    "左管弯吊架外限位",
    "左耙头绞车上限位",
    "左耙中绞车上限位",
    "左管弯绞车上限位",
    "左耙头搁墩限位",
    "左耙中搁墩限位",
    "左弯管搁墩限位",

    "右耙头吊架内限位",
    "右耙中吊架内限位",
    "右管弯吊架内限位",
    "右耙头吊架外限位",
    "右耙中吊架外限位",
    "右管弯吊架外限位",
    "右耙头绞车上限位",
    "右耙中绞车上限位",
    "右管弯绞车上限位",
    "右耙头搁墩限位",
    "右耙中搁墩限位",
    "右弯管搁墩限位",


    // 耙管旋转
    "左吸口到位",
    "右吸口到位",

    "左耙上耙管垂直角度",
    "左耙上耙管水平角度",
    "左耙下耙管垂直角度",
    "左耙下耙管水平角度",


    "右耙上耙管垂直角度",
    "右耙上耙管水平角度",
    "右耙下耙管垂直角度",
    "右耙下耙管水平角度",


    // 暂时无用参数
    "左耙浓度",
    "右耙浓度",
    "左耙流速",
    "右耙流速",
    "左溢流桶行程",
    "右溢流桶行程",
];
let nodeMap = {};

// GPS信息
let GPSInfo = {
    num: null,
    position: { x: 0, y: 0 },
};

// 特效
let effect = {
    '艏喷': 0,
    '装舱': 0,
    '抛泥': 0,
    '舱内液高': 0,
};

// 耙信息
let rakeInfo = {
    ready: false,
}

// 设置页面信息
function setDomInfo(data) {
    store.dispatch({
        type: 'SET_SCENE_PAGE_INFO',
        data,
    });
}

// 更新水深文件名
function setWaterDepthFileName(name) {
    store.dispatch({
        type: 'SET_WATER_DEPTH_FILENAME',
        data: name,
    });
}

// 设置自动执行要查看的对象
function setAutoExecution(num, name) {
    store.dispatch({
        type: 'SET_AUTO_EXECUTION' + num,
        data: name,
    });
}


// 请求父页面内容
function requestParentData() {
    // console.log('请求父页面数据');

    // setTimeout(() => {
    //     setGPSByLand({ x: 0, y: 0 }); // 设置地质的GPS
    // }, 1000);

    System = window.parent.System;
    if (System) {
        // 请求父页面的中水深文件的名字
        window.parent.getXYZ();
        // 创建节点
        let nodes = [];
        for (let i = 0, len = nodeList.length; i < len; i++) {
            nodes.push(System.info.nodes[nodeList[i]]);
        }
        System.comm.socket.addRequestData("Side_", nodes, setProjectParams);

    } else {
        tick();

        setTimeout(() => {
            window.notify3D(['77da851d-b70c-414c-8403-83f9f534064a'], 0, null)
        }, 5000);

        // tick2();
        // tick3();
        // tick4();
        // tick5();

        // 重新刷新页面
        // setTimeout(()=>{
        //     window.location.reload();
        // },15000)
    }
};

let fistIn = true;

// 右侧窗口信息
let rightWindowInfo = {
    win1: {
        selectName: '自动',
        viewContent: '左耙头',
    },
    win2: {
        selectName: '自动',
        viewContent: '右耙头',
    },
}

let tempAutoExecution; // 当前自动执行

// 设置项目信息
function setProjectParams(data) {


    // 加工数据
    for (let i = 0, len = data.length; i < len; i++) {
        nodeMap[nodeList[i]] = data[i];
    }

    if (fistIn) {
        console.log(data);
        console.log(nodeMap);
        console.log(JSON.stringify(data));
        console.log(JSON.stringify(nodeMap));
        fistIn = false;
    }

    // console.log(nodeMap);
    // console.log(JSON.stringify(nodeMap));


    // GPS信息设置
    GPSInfo.num = Number(nodeMap['GPS数组'].toString()[0]);

    if (GPSInfo.num === 1) {
        GPSInfo.position.x = nodeMap['GPS1X坐标'];
        GPSInfo.position.y = nodeMap['GPS1Y坐标'];
    } else if (GPSInfo.num === 2) {
        GPSInfo.position.x = nodeMap['GPS2X坐标'];
        GPSInfo.position.y = nodeMap['GPS2Y坐标'];
    } else if (GPSInfo.num === 3) {
        GPSInfo.position.x = nodeMap['GPS3X坐标'];
        GPSInfo.position.y = nodeMap['GPS3Y坐标'];
    } else if (GPSInfo.num === 4) {
        GPSInfo.position.x = nodeMap['GPS4X坐标'];
        GPSInfo.position.y = nodeMap['GPS4Y坐标'];
    }

    // 设置页面信息
    setDomInfo({
        speed: nodeMap['航速'], // 航速
        draft: nodeMap['船体吃水'], // 船体吃水
        course: nodeMap['罗经'],// 航向
        GPS: `(${GPSInfo.position.x.toFixed(3)},${GPSInfo.position.y.toFixed(3)})`, // gps
        tidemark: nodeMap['潮位'], // 潮位
    });

    // 水深
    updateSeaLevel(nodeMap['潮位']); // 设置潮位

    // 地质
    setGPSByLand(GPSInfo.position); // 设置地质的GPS
    // 挖泥
    dredgingByLand(
        {
            raking: nodeMap['左吸口到位'] === 1,
            position: {
                x: nodeMap['左耙坐标X'],
                y: -nodeMap['左耙坐标Y'],
                z: -nodeMap['左耙坐标Z'],
            }
        },
        {
            raking: nodeMap['右吸口到位'] === 1,
            position: {
                x: nodeMap['右耙坐标X'],
                y: -nodeMap['右耙坐标Y'],
                z: -nodeMap['右耙坐标Z'],
            }
        }); // 对土地疏浚

    // 船体
    updateDraught(nodeMap['潮位'] - nodeMap['船体吃水']); // 船体吃水
    // 船体移动
    setShipPosition(GPSInfo);
    // setShipAction(GPSInfo, data[1] * Math.PI / 180); // 船位移和朝向
    // 船体朝向
    setShipRotation(nodeMap['罗经'] * Math.PI / 180);

    // 艏喷动画
    if (effect['艏喷'] !== nodeMap['艏喷']) {
        shipEffect('艏喷', nodeMap['艏喷']);
        effect['艏喷'] = nodeMap['艏喷'];
        if (effect['艏喷'] === 1) tempAutoExecution = '艏喷';
    }

    // 装舱动画
    if (effect['装舱'] !== nodeMap['装舱']) {
        shipEffect('装舱', nodeMap['装舱']);
        effect['装舱'] = nodeMap['装舱'];
        if (effect['装舱'] === 1) tempAutoExecution = '舱内';
    }

    // 更新舱内液高
    if (effect['舱内液高'] !== nodeMap['舱内液高']) {
        updateLiquidHigh(nodeMap['舱内液高']);
        effect['舱内液高'] = nodeMap['舱内液高'];
    }


    // 抛泥动画
    if (effect['抛泥'] !== nodeMap['抛泥']) {
        shipEffect('抛泥', nodeMap['抛泥']);
        effect['抛泥'] = nodeMap['抛泥'];
        if (effect['抛泥'] === 1) tempAutoExecution = '泥门';
    }

    // 更新泥门高度
    if (effect['泥门高度'] !== nodeMap['泥门高度']) {
        updateMudGatesHigh(nodeMap['泥门高度']);
        effect['泥门高度'] = nodeMap['泥门高度'];
    }

    // 耙准备就绪
    if (rakeInfo.ready) {

        rakeWorking(); // 耙工作

        // 左右耙的耙管的旋转
        if (nodeMap['左吸口到位'] === 1) {
            actionArm('左', 1, nodeMap['左耙上耙管垂直角度'] * Math.PI / 180, nodeMap['左耙上耙管水平角度'] * Math.PI / 180);
            actionArm('左', 2, nodeMap['左耙下耙管垂直角度'] * Math.PI / 180, nodeMap['左耙下耙管水平角度'] * Math.PI / 180);
        }

        if (nodeMap['右吸口到位'] === 1) {
            actionArm('右', 1, nodeMap['右耙上耙管垂直角度'] * Math.PI / 180, nodeMap['右耙上耙管水平角度'] * Math.PI / 180);
            actionArm('右', 2, nodeMap['右耙下耙管垂直角度'] * Math.PI / 180, nodeMap['右耙下耙管水平角度'] * Math.PI / 180);
        }
    }

    updateAutoWindow(tempAutoExecution); // 自动窗口

}

// 更新自动窗口
function updateAutoWindow(name) {

    if (!name) return;

    if (rightWindowInfo.win1.selectName === '自动') {
        if (rightWindowInfo.win1.viewContent !== name) {
            updatelookAtObject(1, name);
            setAutoExecution(1, name);
            // console.log(rightWindowInfo);
            rightWindowInfo.win1.viewContent = name;
        }
    } else if (rightWindowInfo.win2.selectName === '自动') {
        if (rightWindowInfo.win2.viewContent !== name) {
            updatelookAtObject(2, name);
            setAutoExecution(2, name);
            rightWindowInfo.win2.viewContent = name;
        }
    }

}

// 耙工作
let leftRakeStr, rightRakeStr;
function rakeWorking() {

    leftRakeStr = '' +
        nodeMap['左耙头吊架内限位'] +
        nodeMap['左耙中吊架内限位'] +
        nodeMap['左管弯吊架内限位'] +
        nodeMap['左耙头吊架外限位'] +
        nodeMap['左耙中吊架外限位'] +
        nodeMap['左管弯吊架外限位'] +
        nodeMap['左耙头绞车上限位'] +
        nodeMap['左耙中绞车上限位'] +
        nodeMap['左管弯绞车上限位'] +
        nodeMap['左耙头搁墩限位'] +
        nodeMap['左耙中搁墩限位'] +
        nodeMap['左弯管搁墩限位'];

    rightRakeStr = '' +
        nodeMap['右耙头吊架内限位'] +
        nodeMap['右耙中吊架内限位'] +
        nodeMap['右管弯吊架内限位'] +
        nodeMap['右耙头吊架外限位'] +
        nodeMap['右耙中吊架外限位'] +
        nodeMap['右管弯吊架外限位'] +
        nodeMap['右耙头绞车上限位'] +
        nodeMap['右耙中绞车上限位'] +
        nodeMap['右管弯绞车上限位'] +
        nodeMap['右耙头搁墩限位'] +
        nodeMap['右耙中搁墩限位'] +
        nodeMap['右弯管搁墩限位'];


    rakeWorkingJudge('左', leftRakeStr)
    rakeWorkingJudge('右', rightRakeStr)

}

let tempRakeState = {};

// 耙工作命令字符串判断
function rakeWorkingJudge(rake, string) {

    // console.log(rake, string);

    if (string === '111000111000') { // 上升
        // 上升位置
        if (!tempRakeState[rake]) {
            riseState(rake); // 耙处于上升状态
            tempRakeState[rake] = '上升';
        } else if (tempRakeState[rake] === '下降') {
            tempRakeState[rake] = '上升';
            rakeAction1('上升', rake);
        }
    } else if (string === '111000000111') { // 下降
        // 归于原位
        if (!tempRakeState[rake]) {
            tempRakeState[rake] = '下降';
        } else if (tempRakeState[rake] === '上升' || tempRakeState[rake] === '内放') {
            tempRakeState[rake] = '下降';
            rakeAction1('下降', rake);
        }

    } else if (string === '111000000000') { // 内放

        // 上升位置
        if (!tempRakeState[rake]) {
            riseState(rake); // 耙处于上升状态
            tempRakeState[rake] = '内放';
        } else if (tempRakeState[rake] === '外放') {
            tempRakeState[rake] = '内放';
            rakeAction2('内放', rake);
        }

    } else if (string === '000111000000') {
        if (nodeMap[rake + '吸口到位'] === 1) { // 外放
            // 下落的位置
            if (!tempRakeState[rake]) {
                releaseState(rake); // 耙处于上升状态
                tempRakeState[rake] = '外放';
            } else if (tempRakeState[rake] === '上升' || tempRakeState[rake] === '内放') {
                tempRakeState[rake] = '外放';
                rakeAction2('外放', rake);
            }

        }

    } else {
        // 归于原位
        if (!tempRakeState[rake]) {
            tempRakeState[rake] = '下降';
        }
    }

}

window.setGPSByLand = setGPSByLand;

// 保存船体配置
function saveShipConfig(jsonString) {
    System.comm.ajax.saveConfig({
        config: jsonString, // 保存 json 字符串
        type: 13,
        shipId: System.info.shipInfo.id
    });
}

// 请求船体保存的数据
function getShipSaveConfig(params) {
    System.comm.ajax.getConfig({
        userId: System.info.userInfo.userId,
        shipId: System.info.shipInfo.id,
        type: 13
    }, function (result) {
        if (result.status === "ok") {

        }
    });
}

// 请求船的参数信息 【读取船的各种参数信息】
function requestShipInfo(callback) {
    if (System) {

        let shipId = System.info.shipInfo.id;

        // 获取保存信息
        System.comm.ajax.getConfig({ userId: System.info.userInfo.userId, shipId: shipId, type: 13 }, function (result1) {
            if (result1.status === "ok") {

                console.log(result1);

                System.comm.ajax.loadSuctionShipParams({ shipId: shipId }, function (result2) {
                    if (result2.status === "ok") {
                        console.log(result2);

                    } else {
                        console.log('获取不到数据');
                    }
                });

            }
        });

    }

    // let mockData = {
    //     shipName: 'modelDraco', // 船的模型名字
    //     gps: [ // GPS的个数和位置
    //         { x: 10, y: 0, z: 10 },
    //     ],
    //     leftDevice: { // 左设备 
    //         position: { x: 0.8, y: 0, z: -44.5 }, // 左设备 位置
    //         // winchPosition1: { x: -16.95, y: 0, z: -0.23 }, // 绞车1位置
    //         // winchPosition2: { x: -31.35, y: 0, z: -0.23 }, // 绞车2位置
    //         // scalePosition1: { x: -1507.0322265625, y: 40.07623291015625, z: -39.986053466796875 }, // 缩放组1位置
    //         // scalePosition2: { x: -845.646240234375, y: 54.54231262207031, z: 4.93304443359375 }, // 缩放组2位置
    //         // scaleValue1: 1,// 缩放1值
    //         // scaleValue2: 1,// 缩放2值

    //         winchPosition1: { x: -18, y: -0.031373415142297745, z: -0.25 },
    //         winchPosition2: { x: -33, y: -0.031373415142297745, z: -0.25 },
    //         scalePosition1: { x: -1617.0322265625002, y: 40.07623291015625, z: -39.986053466796875 },
    //         scalePosition2: { x: -905.6462402343748, y: 54.54231262207031, z: 4.93304443359375 },
    //         scaleValue1: 1.1410256410256412,
    //         scaleValue2: 1.1333333333333329,

    //     },
    //     rightDevice: { // 右设备
    //         position: { x: 24.72, y: 0, z: -44.53 }, // 右设备 位置
    //         // winchPosition1: { x: -16.9, y: 0, z: 0.25 }, // 绞车1位置
    //         // winchPosition2: { x: -31.3, y: 0, z: 0.25 }, // 绞车2位置
    //         // scalePosition1: { x: -1519.681884765625, y: 30.11669921875, z: 39.33122253417969 }, // 缩放组1位置
    //         // scalePosition2: { x: -799.174072265625, y: 70.63876342773438, z: -4.938873291015625 }, // 缩放组2位置
    //         // scaleValue1: 1,// 缩放1值
    //         // scaleValue2: 1,// 缩放2值

    //         winchPosition1: { x: -18, y: -0.031373415142297745, z: 0.25 },
    //         winchPosition2: { x: -33, y: -0.031373415142297745, z: 0.25 },
    //         scalePosition1: { x: -1624.681884765625, y: 30.11669921875, z: 39.33122253417969 },
    //         scalePosition2: { x: -859.1740722656248, y: 70.63876342773438, z: -4.938873291015625 },
    //         scaleValue1: 1.1346153846153848,
    //         scaleValue2: 1.1333333333333329,
    //     },
    //     bowBlow: { // 艏吹
    //         position: { x: 12.80, y: 6.11, z: -136.55 },
    //     },
    //     bowSpray: { // 艏喷
    //         position: { x: 11.11, y: 11.1, z: -136.55 }, // x值是编辑模块中z的负值,z是编辑模块下x的值 【见上】
    //     },
    //     baffleBox: getCurtainsArray(), // 消能箱 【顶喷】
    //     mudGate: getMudGateArray() // 泥门 

    // }

    let mockData = { "艏吹": [{ "position": { "x": 12.8, "y": 6.11, "z": -136.55 } }], "艏喷": [{ "position": { "x": 11.11, "y": 11.1, "z": -136.55 } }], "消能箱": [{ "position": { "x": 7.4, "y": 1.73, "z": -82.19 } }, { "position": { "x": 18.53, "y": 1.73, "z": -82.19 } }, { "position": { "x": 15.58, "y": 2.1, "z": -51.95 } }, { "position": { "x": 9.94, "y": 2.1, "z": -51.95 } }], "泥门": [{ "position": { "x": 5.87, "y": -10.15, "z": -94.47 } }, { "position": { "x": 19.61, "y": -10.15, "z": -94.47 } }, { "position": { "x": 5.87, "y": -10.15, "z": -86.74 } }, { "position": { "x": 19.61, "y": -10.15, "z": -86.74 } }, { "position": { "x": 5.87, "y": -10.15, "z": -79.11 } }, { "position": { "x": 19.61, "y": -10.15, "z": -79.11 } }, { "position": { "x": 5.87, "y": -10.15, "z": -71.38 } }, { "position": { "x": 19.61, "y": -10.15, "z": -71.38 } }, { "position": { "x": 5.87, "y": -10.15, "z": -63.76 } }, { "position": { "x": 19.61, "y": -10.15, "z": -63.76 } }, { "position": { "x": 5.87, "y": -10.15, "z": -56.07 } }, { "position": { "x": 19.61, "y": -10.15, "z": -56.07 } }, { "position": { "x": 5.87, "y": -10.15, "z": -48.39 } }, { "position": { "x": 19.61, "y": -10.15, "z": -48.39 } }], "GPS": [{ "position": { "x": 10, "y": 2, "z": -10 } }, { "position": { "x": 8, "y": 5, "z": -8 } }, { "position": { "x": 5, "y": 0, "z": 0 } }, { "position": { "x": 0, "y": 0, "z": -5 } }], "左耙": [{ "position": { "x": 0.8, "y": 0, "z": -44.5 }, "winchPosition1": { "x": -15, "y": -0.031373415142297745, "z": -0.25 }, "winchPosition2": { "x": -30, "y": -0.031373415142297745, "z": -0.25 }, "scalePosition1": { "x": -1317.0322265625002, "y": 40.07623291015625, "z": -39.986053466796875 }, "scalePosition2": { "x": -905.6462402343748, "y": 54.54231262207031, "z": 4.93304443359375 }, "scaleValue1": 0.7564102564102566, "scaleValue2": 1.1333333333333329 }], "右耙": [{ "position": { "x": 24.72, "y": 0, "z": -44.53 }, "winchPosition1": { "x": -15, "y": -0.031373415142297745, "z": 0.25 }, "winchPosition2": { "x": -30, "y": -0.031373415142297745, "z": 0.25 }, "scalePosition1": { "x": -1324.681884765625, "y": 30.11669921875, "z": 39.33122253417969 }, "scalePosition2": { "x": -859.1740722656248, "y": 70.63876342773438, "z": -4.938873291015625 }, "scaleValue1": 0.7500000000000001, "scaleValue2": 1.1333333333333329 }] }

    callback(mockData);

}

// 请求船的参数信息 【读取船的各种参数信息】
function requestShipKnownInfo(callback) {
    if (System) {

        let shipId = System.info.shipInfo.id;

        // 获取项目已知数据
        System.comm.ajax.loadSuctionShipParams({ shipId: shipId }, function (result) {
            if (result.status === "ok") {
                console.log(result);
                // callback()

            } else {
                console.log('获取不到数据');
            }
        });

    }

    let mockData = {
        shipName: 'modelDraco', // 船的模型名字
        gps: [ // GPS的个数和位置
            { x: 10, y: 10, z: 2 },
            { x: 8, y: 8, z: 5 },
            { x: 5, y: 0, z: 0 },
            { x: 0, y: 5, z: 0 },
        ],
        leftDevice: { // 左设备 
            position: { x: 0.8, y: 44.5, z: 0 }, // 左设备 位置
            length1: 15,
            length2: 15,
        },
        rightDevice: { // 右设备
            position: { x: 24.72, y: 44.53, z: 0 }, // 右设备 位置
            length1: 15,
            length2: 15,
        },
        bowBlow: { // 艏吹
            x: 12.80, y: 136.55, z: 6.11,
        },
        bowSpray: { // 艏喷
            x: 11.11, y: 136.55, z: 11.1,
        },
        baffleBox: [ // 消能箱 【顶喷】

            { x: 7.4, y: 82.19, z: 1.73 },
            { x: 18.53, y: 82.19, z: 1.73 },
            { x: 15.58, y: 51.95, z: 2.1 },
            { x: 9.94, y: 51.95, z: 2.1 },

        ],
        mudGate: [ // 泥门 
            { x: 5.87, y: 94.47, z: -10.15 }, { x: 19.61, y: 94.47, z: -10.15 },
            { x: 5.87, y: 86.74, z: -10.15 }, { x: 19.61, y: 86.74, z: -10.15 },
            { x: 5.87, y: 79.11, z: -10.15 }, { x: 19.61, y: 79.11, z: -10.15 },
            { x: 5.87, y: 71.38, z: -10.15 }, { x: 19.61, y: 71.38, z: -10.15 },
            { x: 5.87, y: 63.76, z: -10.15 }, { x: 19.61, y: 63.76, z: -10.15 },
            { x: 5.87, y: 56.07, z: -10.15 }, { x: 19.61, y: 56.07, z: -10.15 },
            { x: 5.87, y: 48.39, z: -10.15 }, { x: 19.61, y: 48.39, z: -10.15 },
        ]

    }

    callback(mockData);

}

let tickIndex = 0;
function tick() {
    setTimeout(() => {
        if (tickIndex < 300) {
            mockData[8]++;
            mockData[16]++;
            mockData[19]++;
        };
        setProjectParams(mockData);
        tickIndex++;
        tick();
    }, 1000);
}

function tick2() {
    setTimeout(() => {
        mockData[21] = (mockData[21] === 0) ? 1 : 0;
        tick2();
    }, 10000);
}

function tick3() {
    setTimeout(() => {
        mockData[22] = (mockData[22] === 0) ? 1 : 0;
        tick3();
    }, 15000);
}

function tick4() {
    setTimeout(() => {
        mockData[24] = (mockData[24] === 0) ? 1 : 0;
        tick4();
    }, 11000);
}

function tick5() {
    setTimeout(() => {
        if (mockData[23] < 5) mockData[23] += 3;
        if (mockData[25] < 5) mockData[25] -= 1;
        // tick5();
    }, 10000);
}

export {
    rightWindowInfo, // 右边的窗口数据变量
    rakeInfo, // 耙的信息
    GPSInfo, // gps的信息

    requestParentData, // 请求甲方的系统数据

    requestShipInfo, // 请求船信息
    requestShipKnownInfo, // 请求船已知信息

    saveShipConfig, // 保存船体数据
    getShipSaveConfig, // 请求船体保存数据
}


// 获取水的数组
function getWaterArray() {
    let waterArray = [];

    let waterArray1 = [
        -84.39,
        -81.51, -80.02, -78.34, -76.77,
        -69.09, -70.63, -72.35, -73.84,
        -66.26, -64.79, -63.08, -61.52,
        -58.54, -57.01, -55.36, -53.79,
        -50.31, -48.98, -47.25, -45.70, -44.28,
    ];
    for (let i = 0, len = waterArray1.length; i < len; i++) {
        waterArray.push(
            {
                position: { x: 13.4, y: -5.07, z: waterArray1[i] },
                rotation: { x: -0, y: 0, z: -2.24 }
            },
            {
                position: { x: 12.05, y: -5.07, z: waterArray1[i] },
                rotation: { x: 0, y: -0, z: 2.26 }
            },
        );
    }

    let waterArray2 = [
        -81.84, -76.52,
        -74.09, -68.76,
        -66.59, -61.01,
        -59.02, -53.35,
        -51.29,
    ];
    for (let i = 0, len = waterArray2.length; i < len; i++) {

        let rotationX = (i % 2 === 0) ? 1.589 : -1.589;
        waterArray.push(
            {
                position: { x: 14.31, y: -5.70, z: waterArray2[i] },
                rotation: { x: rotationX, y: 0, z: 0 }
            },
            {
                position: { x: 16.16, y: -6.80, z: waterArray2[i] },
                rotation: { x: rotationX, y: 0, z: 0 }
            },
            {
                position: { x: 11.22, y: -5.70, z: waterArray2[i] },
                rotation: { x: rotationX, y: 0, z: 0 }
            },
            {
                position: { x: 9.3, y: -6.80, z: waterArray2[i] },
                rotation: { x: rotationX, y: 0, z: 0 }
            },
        );

    }
    return waterArray;
}

// 获装舱的数组
function getCurtainsArray() {
    return [
        {
            position: { x: 7.397085377019179, y: 1.7319573556677423, z: -82.18551046304117 },
            rotation: { x: 0, y: 0, z: 0 }
        },
        {
            position: { x: 18.527322193242888, y: 1.7319573556677423, z: -82.18551046304117 },
            rotation: { x: 0, y: 0, z: 0 }
        },
        {
            position: { x: 15.578010997087764, y: 2.096345341120087, z: -51.951040434323545 },
            rotation: { x: 0, y: 0, z: 0 }
        },
        {
            position: { x: 9.937221967092608, y: 2.096345341120087, z: -51.951040434323545 },
            rotation: { x: 0, y: 0, z: 0 }
        },
    ];
}

// 获取泥门数组
function getMudGateArray() {

    return [
        { position: { x: 19.61, y: -10.15, z: -94.47 } }, { position: { x: 5.87, y: -10.15, z: -94.47 } },
        { position: { x: 19.61, y: -10.15, z: -86.74 } }, { position: { x: 5.87, y: -10.15, z: -86.74 } },
        { position: { x: 19.61, y: -10.15, z: -79.11 } }, { position: { x: 5.87, y: -10.15, z: -79.11 } },
        { position: { x: 19.61, y: -10.15, z: -71.38 } }, { position: { x: 5.87, y: -10.15, z: -71.38 } },
        { position: { x: 19.61, y: -10.15, z: -63.76 } }, { position: { x: 5.87, y: -10.15, z: -63.76 } },
        { position: { x: 19.61, y: -10.15, z: -56.07 } }, { position: { x: 5.87, y: -10.15, z: -56.07 } },
        { position: { x: 19.61, y: -10.15, z: -48.39 } }, { position: { x: 5.87, y: -10.15, z: -48.39 } },
    ];
}

/**
 * 通知3D
 * @param {*} xyzFilesname 水深文件名 "202000222-水深格式"
 * @param {*} isnow 是否是 实时0 或 历史1
 * @param {*} startime 播放历史的开始时间 "2020/07/20 11:12:25"
 */
window.notify3D = (xyzFilesname, isnow, startime) => {
    console.log(xyzFilesname, isnow, startime);

    // 重新刷新页面
    // window.location.reload();
}

window.mockCmd = (cmd, num = 1) => {

    switch (cmd) {
        case '艏喷':
            mockData[21] = num;
            break;
        case '装舱':
            mockData[22] = num;
            break;
        case '抛泥':
            mockData[24] = num;
            break;

        case '左上升':
            mockData[50] = 0;
            mockData[26] = mockData[27] = mockData[28] = mockData[32] = mockData[33] = mockData[34] = 1;
            mockData[29] = mockData[30] = mockData[31] = mockData[35] = mockData[36] = mockData[37] = 0;
            break;
        case '左下降':
            mockData[50] = 0;
            mockData[26] = mockData[27] = mockData[28] = mockData[35] = mockData[36] = mockData[37] = 1;
            mockData[29] = mockData[30] = mockData[31] = mockData[32] = mockData[33] = mockData[34] = 0;
            break;
        case '左内放':
            mockData[50] = 0;
            mockData[26] = mockData[27] = mockData[28] = 1;
            mockData[29] = mockData[30] = mockData[31] = mockData[35] = mockData[36] = mockData[37] = mockData[32] = mockData[33] = mockData[34] = 0;
            break;
        case '左外放':
            mockData[29] = mockData[30] = mockData[31] = 1;
            mockData[26] = mockData[27] = mockData[28] = mockData[35] = mockData[36] = mockData[37] = mockData[32] = mockData[33] = mockData[34] = 0;
            mockData[50] = 1;
            break;

        case '右上升':
            mockData[51] = 0;
            mockData[38] = mockData[39] = mockData[40] = mockData[44] = mockData[45] = mockData[46] = 1;
            mockData[41] = mockData[42] = mockData[43] = mockData[47] = mockData[48] = mockData[49] = 0;
            break;
        case '右下降':
            mockData[51] = 0;
            mockData[38] = mockData[39] = mockData[40] = mockData[47] = mockData[48] = mockData[49] = 1;
            mockData[41] = mockData[42] = mockData[43] = mockData[44] = mockData[45] = mockData[46] = 0;
            break;
        case '右内放':
            mockData[51] = 0;
            mockData[38] = mockData[39] = mockData[40] = 1;
            mockData[41] = mockData[42] = mockData[43] = mockData[47] = mockData[48] = mockData[49] = mockData[44] = mockData[45] = mockData[46] = 0;
            break;
        case '右外放':
            mockData[41] = mockData[42] = mockData[43] = 1;
            mockData[38] = mockData[39] = mockData[40] = mockData[47] = mockData[48] = mockData[49] = mockData[44] = mockData[45] = mockData[46] = 0;
            mockData[51] = 1;
            break;

        default:
            break;
    }

}


// =================================================    以下内容随后全部删去    =================================================

function 随后删除函数() {
    模拟发送请求函数();
}

let 计数器 = 0;
let 递归次数 = 45;

let 数据 = {
    潮位值: 1.8,
    吃水值: 4.18,
    航向值: 45,
    GPS值: { x: -30, y: 30 },
    左耙: {
        位置: { x: -30, y: 30 },

    }

}

function 数据变化() {
    数据.GPS值.x--;
    数据.GPS值.y++;
}

function 模拟发送请求函数() {
    setTimeout(() => {

        数据变化();

        let CPS值 = { ...数据.GPS值 };
        // CPS值.y = -CPS值.y;

        // 水深
        updateSeaLevel(数据.潮位值);

        // 地质
        setGPSByLand(CPS值); // 设置地质的GPS
        // dredgingByLand(左耙, 右耙); // 对土地疏浚

        // 船体
        updateDraught(数据.潮位值 - 数据.吃水值); // 船体吃水
        // setShipAction(CPS值, (数据.航向值 + 计数器) * Math.PI / 180); // 船位移和朝向
        // setShipAction(CPS值, 60 * Math.PI / 180); // 船位移和朝向


        计数器++;
        if (计数器 < 递归次数) 模拟发送请求函数();
    }, 1000);
}



//         System.info.nodes["罗经"],
//         System.info.nodes["潮位"],
//         System.info.nodes["船体吃水"],
//         System.info.nodes["横倾"],
//         System.info.nodes["纵倾"],
//         System.info.nodes["GPS1X坐标"],
//         System.info.nodes["GPS1Y坐标"],
//         System.info.nodes["GPS2X坐标"],
//         System.info.nodes["GPS2Y坐标"],
//         System.info.nodes["GPS3X坐标"],
//         System.info.nodes["GPS3Y坐标"],
//         System.info.nodes["GPS4X坐标"],
//         System.info.nodes["GPS4Y坐标"],
//         System.info.nodes["GPS1安装位置X"],
//         System.info.nodes["GPS1安装位置Y"],
//         System.info.nodes["GPS1安装位置Z"],
//         System.info.nodes["GPS2安装位置X"],
//         System.info.nodes["GPS2安装位置Y"],
//         System.info.nodes["GPS2安装位置Z"],
//         System.info.nodes["GPS3安装位置X"],
//         System.info.nodes["GPS3安装位置Y"],
//         System.info.nodes["GPS3安装位置Z"],
//         System.info.nodes["GPS4安装位置X"],
//         System.info.nodes["GPS4安装位置Y"],
//         System.info.nodes["GPS4安装位置Z"],
//         System.info.nodes["左耙上耙管水平角度"],
//         System.info.nodes["左耙下耙管水平角度"],
//         System.info.nodes["左耙上耙管垂直角度"],
//         System.info.nodes["左耙下耙管垂直角度"],
//         System.info.nodes["右耙上耙管水平角度"],
//         System.info.nodes["右耙下耙管水平角度"],
//         System.info.nodes["右耙上耙管垂直角度"],
//         System.info.nodes["右耙下耙管垂直角度"],
//         System.info.nodes["左吸口到位"],
//         System.info.nodes["右吸口到位"],
//         System.info.nodes["左耙坐标X"],
//         System.info.nodes["左耙坐标Y"],
//         System.info.nodes["左耙坐标Z"],
//         System.info.nodes["右耙坐标X"],
//         System.info.nodes["右耙坐标Y"],
//         System.info.nodes["右耙坐标Z"],
//         System.info.nodes["左耙浓度"],
//         System.info.nodes["右耙浓度"],
//         System.info.nodes["左耙流速"],
//         System.info.nodes["右耙流速"],
//         System.info.nodes["左耙吸口位置X"],
//         System.info.nodes["左耙吸口位置Y"],
//         System.info.nodes["左耙吸口位置Z"],
//         System.info.nodes["右耙吸口位置X"],
//         System.info.nodes["右耙吸口位置Y"],
//         System.info.nodes["右耙吸口位置Z"],
//         System.info.nodes["左溢流桶行程"],
//         System.info.nodes["右溢流桶行程"],
//         System.info.nodes["左耙深度"],
//         System.info.nodes["右耙深度"],
//         System.info.nodes["左耙上耙管长度"],
//         System.info.nodes["左耙下耙管长度"],
//         System.info.nodes["右耙上耙管长度"],
//         System.info.nodes["右耙下耙管长度"],
//         System.info.nodes["GPS数组"],
//         System.info.nodes["舱内液高"],
//         System.info.nodes["船长"],
//         System.info.nodes["船宽"],



//         System.info.nodes["罗经"],
//         System.info.nodes["潮位"],
//         System.info.nodes["船体吃水"],
//         System.info.nodes["横倾"],
//         System.info.nodes["纵倾"],
//         System.info.nodes["GPS1X坐标"],
//         System.info.nodes["GPS1Y坐标"],
//         System.info.nodes["GPS2X坐标"],
//         System.info.nodes["GPS2Y坐标"],
//         System.info.nodes["GPS3X坐标"],
//         System.info.nodes["GPS3Y坐标"],
//         System.info.nodes["GPS4X坐标"],
//         System.info.nodes["GPS4Y坐标"],
//         System.info.nodes["GPS1安装位置X"],
//         System.info.nodes["GPS1安装位置Y"],
//         System.info.nodes["GPS2安装位置X"],
//         System.info.nodes["GPS2安装位置Y"],
//         System.info.nodes["GPS3安装位置X"],
//         System.info.nodes["GPS3安装位置Y"],
//         System.info.nodes["GPS4安装位置X"],
//         System.info.nodes["GPS4安装位置Y"],
//         System.info.nodes["左耙上耙管水平角度"],
//         System.info.nodes["左耙下耙管水平角度"],
//         System.info.nodes["左耙上耙管垂直角度"],
//         System.info.nodes["左耙下耙管垂直角度"],
//         System.info.nodes["右耙上耙管水平角度"],
//         System.info.nodes["右耙下耙管水平角度"],
//         System.info.nodes["右耙上耙管垂直角度"],
//         System.info.nodes["右耙下耙管垂直角度"],
//         System.info.nodes["左吸口到位"],
//         System.info.nodes["右吸口到位"],
//         System.info.nodes["左耙坐标X"],
//         System.info.nodes["左耙坐标Y"],
//         System.info.nodes["左耙坐标Z"],
//         System.info.nodes["右耙坐标X"],
//         System.info.nodes["右耙坐标Y"],
//         System.info.nodes["右耙坐标Z"],
//         System.info.nodes["左耙浓度"],
//         System.info.nodes["右耙浓度"],
//         System.info.nodes["左耙流速"],
//         System.info.nodes["右耙流速"],
//         System.info.nodes["左耙吸口位置X"],
//         System.info.nodes["左耙吸口位置Y"],
//         System.info.nodes["左耙吸口位置Z"],
//         System.info.nodes["右耙吸口位置X"],
//         System.info.nodes["右耙吸口位置Y"],
//         System.info.nodes["右耙吸口位置Z"],
//         System.info.nodes["左溢流桶行程"],
//         System.info.nodes["右溢流桶行程"],
//         System.info.nodes["GPS数组"],
// System.info.nodes["艏喷"],
// System.info.nodes["装舱"],
// System.info.nodes["舱内液高"],
// System.info.nodes["抛泥"],
// System.info.nodes["泥门高度"],
// System.info.nodes["左耙头吊架内限位"],
//         System.info.nodes["左耙中吊架内限位"],
//         System.info.nodes["左管弯吊架内限位"],
//         System.info.nodes["左耙头吊架外限位"],
//         System.info.nodes["左耙中吊架外限位"],
//         System.info.nodes["左管弯吊架外限位"],
//         System.info.nodes["左耙头绞车上限位"],
//         System.info.nodes["左耙中绞车上限位"],
//         System.info.nodes["左管弯绞车上限位"],
//         System.info.nodes["左耙头搁墩限位"],
//         System.info.nodes["左耙中搁墩限位"],
//         System.info.nodes["左弯管搁墩限位"],

//         System.info.nodes["右耙头吊架内限位"],
//         System.info.nodes["右耙中吊架内限位"],
//         System.info.nodes["右管弯吊架内限位"],
//         System.info.nodes["右耙头吊架外限位"],
//         System.info.nodes["右耙中吊架外限位"],
//         System.info.nodes["右管弯吊架外限位"],
//         System.info.nodes["右耙头绞车上限位"],
//         System.info.nodes["右耙中绞车上限位"],
//         System.info.nodes["右管弯绞车上限位"],
//         System.info.nodes["右耙头搁墩限位"],
//         System.info.nodes["右耙中搁墩限位"],
//         System.info.nodes["右弯管搁墩限位"],

// function fangxiashuangba() {

//     setTimeout(() => {
//         leftAction('下降', () => { }, () => { });
//         rightAction('下降', () => {
//             xuanzhuanshuangba()
//             // shouqishuangba();
//         }, () => { });
//     }, 5000);
// }

// function xuanzhuanshuangba() {
//     let rad = Math.PI / 180;

//     setTimeout(() => {
//         actionArm('左', 1, 45 * rad, -45 * rad);
//         actionArm('左', 2, -10 * rad, 30 * rad);
//         actionArm('左', 3, -45 * rad, 0);

//         actionArm('右', 1, 45 * rad, 45 * rad);
//         actionArm('右', 2, -10 * rad, -30 * rad);
//         actionArm('右', 3, -45 * rad, 0);

//         // setTimeout(() => {
//         //     shouqishuangba();
//         // }, 8000);

//     }, 2000);
// }

// function shouqishuangba() {

//     setTimeout(() => {
//         leftAction('上升', () => { }, () => { });
//         rightAction('上升', () => {
//             fangxiashuangba()
//         }, () => { });
//     }, 2000);
// }

// let aa = {
//     "航速": 0.01278071, "罗经": 0.300127536058426, "潮位": 1.746225, "船体吃水": 2.5, "横倾": null, "纵倾": null, "GPS数组": 1, "GPS1X坐标": -448.464050292969, "GPS1Y坐标": 776.416442871094, "GPS2X坐标": null, "GPS2Y坐标": null, "左耙坐标X": -462.108440482839, "左耙坐标Y": 695.491346134924, "左耙坐标Z": -3.24540566888518, "右耙坐标X": -435.632497551001, "右耙坐标Y": 701.351286188851, "右耙坐标Z": -3.22338732674708, "舱内液高": null, "左耙头吊架内限位": null, "左耙中吊架内限位": null, "左耙头吊架外限位": null, "左耙中吊架外限位": null, "左耙头绞车上限位": null, "左耙中绞车上限位": null, "左耙头搁墩限位": null, "左耙中搁墩限位": null, "左弯管搁墩限位": null, "右耙头吊架内限位": null, "右耙中吊架内限位": null, "右耙头吊架外限位": null, "右耙中吊架外限位": null, "右耙头绞车上限位": null, "右耙中绞车上限位": null, "右耙头搁墩限位": null, "右耙中搁墩限位": null, "右弯管搁墩限位": null, "左吸口到位": "False", "右吸口到位": "False", "左耙上耙管垂直角度": 0.3362885, "左耙上耙管水平角度": 0.9499512, "左耙下耙管垂直角度": -0.2930069, "左耙下耙管水平角度": -0.6760178, "右耙上耙管垂直角度": 0.204483, "右耙上耙管水平角度": -0.8587494, "右耙下耙管垂直角度": -0.3205566, "右耙下耙管水平角度": 0.5712357, "左耙浓度": 1, "右耙浓度": 2, "左耙流速": 3, "右耙流速": 4, "左溢流桶行程": null, "右溢流桶行程": null
// }

// 上升
// 左耙头吊架内限位：1
// 左耙中吊架内限位：1
// 左管弯吊架内限位：1
// 左耙头吊架外限位：0
// 左耙中吊架外限位：0
// 左管弯吊架外限位：0
// 左耙头绞车上限位：1
// 左耙中绞车上限位：1
// 左管弯绞车上限位：1
// 左耙头搁墩限位：0
// 左耙中搁墩限位：0
// 左弯管搁墩限位：0


// 右耙头吊架内限位：1
// 右耙中吊架内限位：1
// 右管弯吊架内限位：1
// 右耙头吊架外限位：0
// 右耙中吊架外限位：0
// 右管弯吊架外限位：0
// 右耙头绞车上限位：1
// 右耙中绞车上限位：1
// 右管弯绞车上限位：1
// 右耙头搁墩限位：0
// 右耙中搁墩限位：0
// 右弯管搁墩限位：0


// 下降

// 左耙头吊架内限位：1
// 左耙中吊架内限位：1
// 左管弯吊架内限位：1
// 左耙头吊架外限位：0
// 左耙中吊架外限位：0
// 左管弯吊架外限位：0
// 左耙头绞车上限位：0
// 左耙中绞车上限位：0
// 左管弯绞车上限位：0
// 左耙头搁墩限位：1
// 左耙中搁墩限位：1
// 左弯管搁墩限位：1


// 右耙头吊架内限位：1
// 右耙中吊架内限位：1
// 右管弯吊架内限位：1
// 右耙头吊架外限位：0
// 右耙中吊架外限位：0
// 右管弯吊架外限位：0
// 右耙头绞车上限位：0
// 右耙中绞车上限位：0
// 右管弯绞车上限位：0
// 右耙头搁墩限位：1
// 右耙中搁墩限位：1
// 右弯管搁墩限位：1

// 外放
// 左耙头吊架内限位：0
// 左耙中吊架内限位：0
// 左管弯吊架内限位：0
// 左耙头吊架外限位：1
// 左耙中吊架外限位：1
// 左管弯吊架外限位：1
// 左耙头绞车上限位：0
// 左耙中绞车上限位：0
// 左管弯绞车上限位：0
// 左耙头搁墩限位：0
// 左耙中搁墩限位：0
// 左弯管搁墩限位：0
// 左吸口到位：1

// 右耙头吊架内限位：0
// 右耙中吊架内限位：0
// 右管弯吊架内限位：0
// 右耙头吊架外限位：1
// 右耙中吊架外限位：1
// 右管弯吊架外限位：1
// 右耙头绞车上限位：0
// 右耙中绞车上限位：0
// 右管弯绞车上限位：0
// 右耙头搁墩限位：0
// 右耙中搁墩限位：0
// 右弯管搁墩限位：0
// 右吸口到位：1

// 内放

// 左耙头吊架内限位：1
// 左耙中吊架内限位：1
// 左管弯吊架内限位：1
// 左耙头吊架外限位：0
// 左耙中吊架外限位：0
// 左管弯吊架外限位：0
// 左耙头绞车上限位：0
// 左耙中绞车上限位：0
// 左管弯绞车上限位：0
// 左耙头搁墩限位：0
// 左耙中搁墩限位：0
// 左弯管搁墩限位：0


// 右耙头吊架内限位：1
// 右耙中吊架内限位：1
// 右管弯吊架内限位：1
// 右耙头吊架外限位：0
// 右耙中吊架外限位：0
// 右管弯吊架外限位：0
// 右耙头绞车上限位：0
// 右耙中绞车上限位：0
// 右管弯绞车上限位：0
// 右耙头搁墩限位：0
// 右耙中搁墩限位：0
// 右弯管搁墩限位：0



// parent页

// window.notify3D;

// function getXYZ(params) {
//     ajax.func({
//         data: { ...data },
//         succeesfunction(result) {
//             if (window.notify3D && typeof window.notify3D === "function") window.notify3D(result)
//         }
//     })

// }

// // Children页
// window.parent.notify3D = (result) => {
//     console.log(result);
// }

// window.parent.getXYZ();

